Technical Field
The present technique relates to the field of data processing.
Technical Background
It is common to use floating-point (FP) representation in data processing systems. A floating-point number includes a significand and an exponent indicating a significance of the bits of the significand. This allows numeric values over a large range to be represented using a finite number of bits. However, a problem with floating-point arithmetic is that calculations are generally non-associative. For example, when adding several floating-point values, each time another value is added to the result of the previous addition, the result is rounded and normalised, which means that the overall result is different depending on the order in which the values are added. This makes it difficult to parallelize floating-point arithmetic, because sums are not reproducible unless completed in the exact same order. To generate a reproducible result, a series of additions or subtractions typically have to be performed sequentially, which can make floating-point arithmetic relatively slow.